# Aod::Aod.cpp Util.h Util.cpp Data.h Data.cpp
# 	g++ -std=c++11 $^ -o $@ -L/usr/lib64/mysql -ljsoncpp -lmysqlclient
# clean:
# 	rm -f Aod *.o

CXX = g++
CXXFLAGS = -std=c++11 -Wall
LDFLAGS = -L/usr/lib64/mysql
LDLIBS = -ljsoncpp -lmysqlclient -lpthread -lcrypt

# 目标文件列表
OBJS = Aod.o Util.o Data.o Server.o User.o Auth.o

# 最终目标
Aod: $(OBJS)
	$(CXX) $(LDFLAGS) -o $@ $^ $(LDLIBS)

# 每个 .o 文件的生成规则
Aod.o: Aod.cpp Util.h Data.h Server.h User.h Auth.h
	$(CXX) $(CXXFLAGS) -c $<

Util.o: Util.cpp Util.h	
	$(CXX) $(CXXFLAGS) -c $<

Data.o: Data.cpp Data.h
	$(CXX) $(CXXFLAGS) -c $<

Server.o: Server.cpp Server.h Data.h User.h Auth.h
	$(CXX) $(CXXFLAGS) -c $<

User.o: User.cpp User.h Util.h
	$(CXX) $(CXXFLAGS) -c $<

Auth.o: Auth.cpp Auth.h User.h
	$(CXX) $(CXXFLAGS) -c $<

clean:
	rm -f Aod $(OBJS)